package com.kehutong.charge.entity;

import com.kehutong.charge.util.enums.ChargeBillStatusEnum;
import com.kehutong.charge.util.enums.CommonEnum;
import com.kehutong.charge.util.enums.ResidentsTypeEnum;
import com.kehutong.common.entity.DataEntity;
import org.coraframework.json.annotation.JSONField;
import org.coraframework.orm.annotation.Column;
import org.coraframework.orm.annotation.Table;
import org.coraframework.orm.annotation.UnSave;
import org.coraframework.orm.util.IDType;

import java.math.BigDecimal;
import java.util.List;

/**
 * @program: kht
 * @description: ChargeBill
 * @author: joneron
 * @create: 2021/7/5
 **/
@Table(value="t_charge_bill_house", comment="房子账单管理表",multi = true, idType = IDType.TIMESTAMP, engine = "innodb")
public class ChargeBillHouse extends DataEntity {

    protected ChargeBillHouse(String id) {
        super(id);
    }

    @Column(comment="小区账单编号")
    private String communityBillNo;

    @Column(comment="小区编号")
    private String communityNo;

    @Column(comment="小区名称")
    private String communityName;

    @Column(comment="账单编号")
    private String houseBillNo;

    @Column(comment="楼栋编号")
    private String buildNo;

    @Column(comment="房屋编号")
    private String houseNo;

    @Column(comment="账单年月")
    private String billYearMonth;

    @Column(comment="账单地址")
    private String billAddress;

    @Column(comment="缴费人")
    private String chargeName;

    @Column(comment="缴费人编号")
    private String userNo;

    @Column(comment="收费类型")
    private CommonEnum chargeType;

    @Column(comment="住户类型")
    private ResidentsTypeEnum residentsType;

    @Column(comment="账单金额")
    private BigDecimal billAmount;

    @Column(comment="实缴费金额")
    private BigDecimal billAmountPaid;

    @Column(comment="应缴费金额")
    private BigDecimal billAmountUnPaid;

    @Column(comment="调整金额")
    private BigDecimal changeAmount;

    @Column(comment="记账周期")
    private String billCycleStart;

    @Column(comment="记账周期")
    private String billCycleEnd;

    @Column(comment="出账单日")
    private String billDate;

    @Column(comment="账单状态")
    private ChargeBillStatusEnum billStatus;

    @Column(comment="缴费状态")
    private ChargeBillStatusEnum chargeStatus;

    @Column(comment="缴费时间")
    private String chargeDate;

    @Column(comment="违约金额")
    private BigDecimal penaltyAmount;

    @Column(comment="违约时间")
    private String penaltyDate;

    @Column(comment="违约天数")
    private Integer penaltyDays;

    @Column(comment="操作状态: 作废、重新生成")
    private String operaStatus;

    @Column(comment="操作说明")
    private String operaDesc;

    @JSONField(serialize = false)
    @Column(comment = "逻辑删除")
    private boolean deleted;

    @Column(comment = "创建人")
    private String createName;

    @Column(comment = "修改人")
    private String updateName;

    @UnSave
    private BigDecimal unPayAmount;

    @Column(comment = "自动操作说明")
    private String autoRemark;

    @Column(comment="楼栋名字")
    private String buildName;

    @UnSave
    private BigDecimal payAmount;

    @UnSave
    private String mergeName;

    public BigDecimal getPayAmount() {
        return payAmount;
    }

    public void setPayAmount(BigDecimal payAmount) {
        this.payAmount = payAmount;
    }

    public String getBuildNo() {
        return buildNo;
    }

    public void setBuildNo(String buildNo) {
        this.buildNo = buildNo;
    }

    public ChargeBillStatusEnum getChargeStatus() {
        return chargeStatus;
    }

    public void setChargeStatus(ChargeBillStatusEnum chargeStatus) {
        this.chargeStatus = chargeStatus;
    }

    public String getUserNo() {
        return userNo;
    }

    public void setUserNo(String userNo) {
        this.userNo = userNo;
    }

    public String getHouseNo() {
        return houseNo;
    }

    public void setHouseNo(String houseNo) {
        this.houseNo = houseNo;
    }

    public CommonEnum getChargeType() {
        return chargeType;
    }

    public void setChargeType(CommonEnum chargeType) {
        this.chargeType = chargeType;
    }

    public String getCommunityName() {
        return communityName;
    }

    public void setCommunityName(String communityName) {
        this.communityName = communityName;
    }

    public ResidentsTypeEnum getResidentsType() {
        return residentsType;
    }

    public void setResidentsType(ResidentsTypeEnum residentsType) {
        this.residentsType = residentsType;
    }

    public String getCommunityBillNo() {
        return communityBillNo;
    }

    public void setCommunityBillNo(String communityBillNo) {
        this.communityBillNo = communityBillNo;
    }

    public String getCommunityNo() {
        return communityNo;
    }

    public void setCommunityNo(String communityNo) {
        this.communityNo = communityNo;
    }

    public Integer getPenaltyDays() {
        return penaltyDays;
    }

    public void setPenaltyDays(Integer penaltyDays) {
        this.penaltyDays = penaltyDays;
    }

    public String getHouseBillNo() {
        return houseBillNo;
    }

    public void setHouseBillNo(String houseBillNo) {
        this.houseBillNo = houseBillNo;
    }

    public String getBillYearMonth() {
        return billYearMonth;
    }

    public void setBillYearMonth(String billYearMonth) {
        this.billYearMonth = billYearMonth;
    }

    public String getBillAddress() {
        return billAddress;
    }

    public void setBillAddress(String billAddress) {
        this.billAddress = billAddress;
    }

    public String getChargeName() {
        return chargeName;
    }

    public void setChargeName(String chargeName) {
        this.chargeName = chargeName;
    }

    public BigDecimal getBillAmount() {
        return billAmount;
    }

    public void setBillAmount(BigDecimal billAmount) {
        this.billAmount = billAmount;
    }

    public BigDecimal getBillAmountPaid() {
        return billAmountPaid;
    }

    public void setBillAmountPaid(BigDecimal billAmountPaid) {
        this.billAmountPaid = billAmountPaid;
    }

    public BigDecimal getBillAmountUnPaid() {
        return billAmountUnPaid;
    }

    public void setBillAmountUnPaid(BigDecimal billAmountUnPaid) {
        this.billAmountUnPaid = billAmountUnPaid;
    }

    public String getBillCycleStart() {
        return billCycleStart;
    }

    public void setBillCycleStart(String billCycleStart) {
        this.billCycleStart = billCycleStart;
    }

    public String getBillCycleEnd() {
        return billCycleEnd;
    }

    public void setBillCycleEnd(String billCycleEnd) {
        this.billCycleEnd = billCycleEnd;
    }

    public String getBillDate() {
        return billDate;
    }

    public void setBillDate(String billDate) {
        this.billDate = billDate;
    }

    public ChargeBillStatusEnum getBillStatus() {
        return billStatus;
    }

    public void setBillStatus(ChargeBillStatusEnum billStatus) {
        this.billStatus = billStatus;
    }

    public BigDecimal getPenaltyAmount() {
        return penaltyAmount;
    }

    public void setPenaltyAmount(BigDecimal penaltyAmount) {
        this.penaltyAmount = penaltyAmount;
    }

    public String getPenaltyDate() {
        return penaltyDate;
    }

    public void setPenaltyDate(String penaltyDate) {
        this.penaltyDate = penaltyDate;
    }

    public boolean isDeleted() {
        return deleted;
    }

    public void setDeleted(boolean deleted) {
        this.deleted = deleted;
    }

    public String getChargeDate() {
        return chargeDate;
    }

    public void setChargeDate(String chargeDate) {
        this.chargeDate = chargeDate;
    }

    public String getOperaStatus() {
        return operaStatus;
    }

    public void setOperaStatus(String operaStatus) {
        this.operaStatus = operaStatus;
    }

    public String getOperaDesc() {
        return operaDesc;
    }

    public void setOperaDesc(String operaDesc) {
        this.operaDesc = operaDesc;
    }

    public String getCreateName() {
        return createName;
    }

    public void setCreateName(String createName) {
        this.createName = createName;
    }

    public String getUpdateName() {
        return updateName;
    }

    public void setUpdateName(String updateName) {
        this.updateName = updateName;
    }

    public BigDecimal getChangeAmount() {
        return changeAmount;
    }

    public void setChangeAmount(BigDecimal changeAmount) {
        this.changeAmount = changeAmount;
    }

    public BigDecimal getUnPayAmount() {
        return unPayAmount;
    }

    public void setUnPayAmount(BigDecimal unPayAmount) {
        this.unPayAmount = unPayAmount;
    }

    public String getAutoRemark() {
        return autoRemark;
    }

    public void setAutoRemark(String autoRemark) {
        this.autoRemark = autoRemark;
    }

    public String getBuildName() {
        return buildName;
    }

    public void setBuildName(String buildName) {
        this.buildName = buildName;
    }

    public String getMergeName() {
        return mergeName;
    }

    public void setMergeName(String mergeName) {
        this.mergeName = mergeName;
    }
}
